package presentacion;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JToolBar;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTextField;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;















import java.awt.image.BufferedImage;

import dominio.ImagenGrafico;
import dominio.ListenerCerrarVentana;
import dominio.MiAreaDibujo;
import dominio.RutaGrafico;
import dominio.TextoGrafico;
import dominio.Util;

import java.awt.Font;

import javax.swing.SwingConstants;

import java.awt.Dimension;
import java.awt.SystemColor;

public class EditorGrafico {

	JFrame VentanaEditorGrafico;
	private JToolBar tbBarraDibujo;
	private JButton btnCargarMapa;
	private JButton btnMeta;
	private JButton btnSalida;
	private JButton btnSOS;
	private JButton btnComentario;
	private JButton btnBorrarTodo;
	private JButton btnBebida;
	private JButton btnComida;
	private JButton btnDorsales;
	private JScrollPane scrollPane;

	private MiAreaDibujo miAreaDibujo;
	private ImageIcon imagen;

	int modo = -1;
	private final int TEXTO = 1;
	private final int META = 2;
	private final int SALIDA = 3;
	private final int SOS = 4;
	private final int BEBIDA = 5;
	private final int COMIDA = 6;
	private final int DORSALES = 7;
	private final int LAPIZ = 8;

	private Toolkit toolkit;
	private Image imagTexto;
	private Image imagMeta;
	private Image imagSalida;
	private Image imagSOS;
	private Image imagBebida;
	private Image imagComida;
	private Image imagDorsales;
	private Image imagLapiz;
	
	
	private Cursor cursorTexto;
	private Cursor cursorMeta;
	private Cursor cursorSalida;
	private Cursor cursorSOS;
	private Cursor cursorBebida;
	private Cursor cursorComida;
	private Cursor cursorDorsales;
	private Cursor cursorLapiz;
	
	private int x, y;
	private JTextField txtTexto = new JTextField();
	private JButton btnLapiz;
	

	private JMenuBar menuBar;
	private JMenu mnArchivo;
	private JMenu mnGestin;
	private JMenu mnAyuda;
	private JMenuItem mntmAyuda;
	private JMenuItem mntmAcercaDe;
	private JMenuItem mntmGuardar;
	private JMenuItem mntmCancelar;
	private JSeparator separator;
	private JMenuItem mntmCambiarIdioma;
	private JSeparator separator_1;
	private JMenuItem mntmSalir;
	private JRadioButtonMenuItem mntmEspaol;
	private JRadioButtonMenuItem mntmIngls;
	private final ButtonGroup buttonGroup = new ButtonGroup();
	private JButton btnGuardar;
	private JButton btnCancelar;
	private JButton btnAyuda;
	private JMenuItem mntmCargarMapa;
	private JMenuItem mntmBorrarTodo;
	private JMenuItem mntmSalida;
	private JMenuItem mntmMeta;
	private JMenuItem mntmSOS;
	private JMenuItem mntmBebida;
	private JMenuItem mntmComida;
	private JMenuItem mntmComentario;
	private JMenuItem mntmDorsales;
	private JMenuItem mntmLapiz;
	private JSeparator separator_2;
	private JSeparator separator_3;
	private JSeparator separator_4;
	private JSeparator separator_6;
	private JSeparator separator_7;
	private JSeparator separator_5;
	JLabel lblMapa;
	JButton btnCargarMapap;
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					EditorGrafico window = new EditorGrafico(null,null);
					window.VentanaEditorGrafico.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public EditorGrafico(JLabel l,JButton b) {
		lblMapa=l;
		btnCargarMapap=b;
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		VentanaEditorGrafico = new JFrame();
		VentanaEditorGrafico.setResizable(false);
		VentanaEditorGrafico.addWindowListener(new ListenerCerrarVentana(VentanaEditorGrafico));
		VentanaEditorGrafico.setIconImage(Toolkit.getDefaultToolkit().getImage(EditorGrafico.class.getResource("/recursos/LOGO-pqeq.png"))); //$NON-NLS-1$
		VentanaEditorGrafico.setTitle(Messages.getString("EditorGrafico.frmMiEditorGrafico.title")); //$NON-NLS-1$
		VentanaEditorGrafico.setBounds(100, 100, 717, 738);
		VentanaEditorGrafico.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		VentanaEditorGrafico.getContentPane().setLayout(null);
		VentanaEditorGrafico.setLocationRelativeTo(null);
		{
			btnGuardar = new JButton(Messages.getString("EditorGrafico.btnNewButton.text")); //$NON-NLS-1$
			btnGuardar.setMnemonic('S');
			btnGuardar.setToolTipText(Messages.getString("EditorGrafico.btnGuardar.toolTipText")); //$NON-NLS-1$
			btnGuardar.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
			btnGuardar.addActionListener(new GuardarActionListener());
			btnGuardar.setFont(new Font("Tahoma", Font.PLAIN, 14)); //$NON-NLS-1$
			btnGuardar.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Guardar-32.png"))); //$NON-NLS-1$
			btnGuardar.setBounds(413, 628, 120, 40);
			VentanaEditorGrafico.getContentPane().add(btnGuardar);
		}
		{
			btnAyuda = new JButton(""); //$NON-NLS-1$
			btnAyuda.setMnemonic('H');
			btnAyuda.setToolTipText(Messages.getString("EditorGrafico.btnAyuda.toolTipText")); //$NON-NLS-1$
			btnAyuda.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
			btnAyuda.setBounds(684, 0, 25, 25);
			VentanaEditorGrafico.getContentPane().add(btnAyuda);
			btnAyuda.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/help.png"))); //$NON-NLS-1$
			btnAyuda.addActionListener(new AyudaActionListener());
		}
		scrollPane = new JScrollPane();
		scrollPane.setBounds(0, 57, 701, 560);
		VentanaEditorGrafico.getContentPane().add(scrollPane);
		miAreaDibujo = new MiAreaDibujo();
		miAreaDibujo.addMouseListener(new MiAreaDibujoMouseListener());
		miAreaDibujo.setIcon(null);
		scrollPane.setColumnHeaderView(miAreaDibujo);

		// Creación de imágenes y cursores
		toolkit = Toolkit.getDefaultToolkit();;
		imagTexto = toolkit.getImage(getClass().getClassLoader().getResource(
				"recursos/Comentario48.png")); //$NON-NLS-1$
		imagMeta = toolkit.getImage(getClass().getClassLoader()
				.getResource("recursos/Meta48.png")); //$NON-NLS-1$
		imagSalida = toolkit.getImage(getClass().getClassLoader()
				.getResource("recursos/PistolaSalida48.png")); //$NON-NLS-1$
		imagSOS = toolkit.getImage(getClass().getClassLoader()
				.getResource("recursos/SOS48.png")); //$NON-NLS-1$
		imagBebida = toolkit.getImage(getClass().getClassLoader()
				.getResource("recursos/Agua48.png")); //$NON-NLS-1$
		imagComida = toolkit.getImage(getClass().getClassLoader()
				.getResource("recursos/Comida48.png")); //$NON-NLS-1$
		imagDorsales = toolkit.getImage(getClass().getClassLoader()
				.getResource("recursos/Dorsales48.png")); //$NON-NLS-1$
		imagLapiz = toolkit.getImage(getClass().getClassLoader()
				.getResource("recursos/cursorLapiz.png")); //$NON-NLS-1$
		
		// Creación de los cursores
		
		cursorTexto = toolkit.createCustomCursor(imagTexto, new Point(0, 0),
				"CURSOR_TEXTO"); //$NON-NLS-1$
		cursorMeta=toolkit.createCustomCursor(imagMeta, new Point(0, 0),
				"CURSOR_META"); //$NON-NLS-1$
		cursorSalida=toolkit.createCustomCursor(imagSalida, new Point(0, 0),
				"CURSOR_SALIDA"); //$NON-NLS-1$
		cursorSOS=toolkit.createCustomCursor(imagSOS, new Point(0, 0),
				"CURSOR_SOS"); //$NON-NLS-1$
		cursorBebida=toolkit.createCustomCursor(imagBebida, new Point(0, 0),
				"CURSOR_BEBIDA"); //$NON-NLS-1$
		cursorComida=toolkit.createCustomCursor(imagComida, new Point(0, 0),
				"CURSOR_COMIDA"); //$NON-NLS-1$
		cursorDorsales=toolkit.createCustomCursor(imagDorsales, new Point(0, 0),
				"CURSOR_DORSALES"); //$NON-NLS-1$
		cursorLapiz=toolkit.createCustomCursor(imagLapiz, new Point(0, 0),
				"CURSOR_LAPIZ"); //$NON-NLS-1$
		{
			tbBarraDibujo = new JToolBar();
			tbBarraDibujo.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
			tbBarraDibujo.setBounds(0, 0, 709, 57);
			VentanaEditorGrafico.getContentPane().add(tbBarraDibujo);
			{
				btnCargarMapa = new JButton(""); //$NON-NLS-1$
				btnCargarMapa.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
				btnCargarMapa.setToolTipText(Messages.getString("EditorGrafico.3")); //$NON-NLS-1$
				btnCargarMapa
						.addActionListener(new BtnCargarMapaActionListener());
				btnCargarMapa.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Mapa48.png"))); //$NON-NLS-1$
				tbBarraDibujo.add(btnCargarMapa);
			}
			{
				btnMeta = new JButton(""); //$NON-NLS-1$
				btnMeta.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
				btnMeta.setEnabled(false);
				btnMeta.setToolTipText(Messages.getString("EditorGrafico.4")); //$NON-NLS-1$
				btnMeta.addActionListener(new BtnMetaActionListener());
				{
					btnBorrarTodo = new JButton(""); //$NON-NLS-1$
					btnBorrarTodo.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					btnBorrarTodo.setEnabled(false);
					btnBorrarTodo.setToolTipText(Messages.getString("EditorGrafico.5")); //$NON-NLS-1$
					btnBorrarTodo.addActionListener(new BtnBorrarTodoActionListener());
					btnBorrarTodo.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Borrar48.png"))); //$NON-NLS-1$
					tbBarraDibujo.add(btnBorrarTodo);
				}
				{
					btnSalida = new JButton(""); //$NON-NLS-1$
					btnSalida.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					btnSalida.setEnabled(false);
					btnSalida.setToolTipText(Messages.getString("EditorGrafico.1")); //$NON-NLS-1$
					btnSalida.addActionListener(new BtnSalidaActionListener());
					{
						separator_7 = new JSeparator();
						separator_7.setMaximumSize(new Dimension(15, 60));
						separator_7.setForeground(SystemColor.menu);
						separator_7.setBackground(SystemColor.menu);
						tbBarraDibujo.add(separator_7);
					}
					btnSalida.setIcon(new ImageIcon(EditorGrafico.class
							.getResource("/recursos/PistolaSalida48.png"))); //$NON-NLS-1$
					tbBarraDibujo.add(btnSalida);
				}
				btnMeta.setIcon(new ImageIcon(EditorGrafico.class
						.getResource("/recursos/Meta48.png"))); //$NON-NLS-1$
				tbBarraDibujo.add(btnMeta);
			}
			{
				btnSOS = new JButton(""); //$NON-NLS-1$
				btnSOS.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
				btnSOS.setEnabled(false);
				btnSOS.setToolTipText(Messages.getString("EditorGrafico.2")); //$NON-NLS-1$
				btnSOS.addActionListener(new BtnSOSActionListener());
				{
					btnDorsales = new JButton(""); //$NON-NLS-1$
					btnDorsales.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					btnDorsales.setEnabled(false);
					btnDorsales.setToolTipText(Messages.getString("EditorGrafico.0")); //$NON-NLS-1$
					btnDorsales.addActionListener(new BtnDorsalesActionListener());
					btnDorsales.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Dorsales48.png"))); //$NON-NLS-1$
					tbBarraDibujo.add(btnDorsales);
				}
				{
					separator_6 = new JSeparator();
					separator_6.setBackground(new Color(240,240,240));
					separator_6.setForeground(new Color(240,240,240));
					separator_6.setMaximumSize(new Dimension(15, 60));
					tbBarraDibujo.add(separator_6);
				}
				btnSOS.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/SOS48.png"))); //$NON-NLS-1$
				tbBarraDibujo.add(btnSOS);
			}
			{
				btnBebida = new JButton(""); //$NON-NLS-1$
				btnBebida.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
				btnBebida.setEnabled(false);
				btnBebida.setToolTipText(Messages.getString("EditorGrafico.6")); //$NON-NLS-1$
				btnBebida.addActionListener(new BtnBebidaActionListener());
				btnBebida.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Agua48.png"))); //$NON-NLS-1$
				tbBarraDibujo.add(btnBebida);
			}
			{
				btnComida = new JButton(""); //$NON-NLS-1$
				btnComida.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
				btnComida.setEnabled(false);
				btnComida.setToolTipText(Messages.getString("EditorGrafico.7")); //$NON-NLS-1$
				btnComida.addActionListener(new BtnComidaActionListener());
				btnComida.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Comida48.png"))); //$NON-NLS-1$
				tbBarraDibujo.add(btnComida);
			}
			btnComentario = new JButton(""); //$NON-NLS-1$
			btnComentario.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
			btnComentario.setEnabled(false);
			btnComentario.setToolTipText(Messages.getString("EditorGrafico.8")); //$NON-NLS-1$
			btnComentario
					.addActionListener(new BtnAnotacionActionListener());
			btnComentario.setIcon(new ImageIcon(EditorGrafico.class
					.getResource("/recursos/Comentario48.png"))); //$NON-NLS-1$
			tbBarraDibujo.add(btnComentario);
			{
				btnLapiz = new JButton(""); //$NON-NLS-1$
				btnLapiz.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
				btnLapiz.setEnabled(false);
				btnLapiz.addActionListener(new BtnLapizActionListener());
				{
					separator_5 = new JSeparator();
					separator_5.setMaximumSize(new Dimension(15, 60));
					separator_5.setForeground(SystemColor.menu);
					separator_5.setBackground(SystemColor.menu);
					tbBarraDibujo.add(separator_5);
				}
				btnLapiz.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Lapiz48.png"))); //$NON-NLS-1$
				tbBarraDibujo.add(btnLapiz);
			}
			
		}
		{
			btnCancelar = new JButton(Messages.getString("EditorGrafico.btnCancelar.text")); //$NON-NLS-1$
			btnCancelar.setMnemonic('C');
			btnCancelar.setToolTipText(Messages.getString("EditorGrafico.btnCancelar.toolTipText")); //$NON-NLS-1$
			btnCancelar.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
			btnCancelar.addActionListener(new CancelarActionListener());
			btnCancelar.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/delete_64.png"))); //$NON-NLS-1$
			btnCancelar.setFont(new Font("Tahoma", Font.PLAIN, 14)); //$NON-NLS-1$
			btnCancelar.setBounds(543, 628, 133, 40);
			VentanaEditorGrafico.getContentPane().add(btnCancelar);
		}
		{
			menuBar = new JMenuBar();
			menuBar.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
			VentanaEditorGrafico.setJMenuBar(menuBar);
			{
				mnArchivo = new JMenu(Messages.getString("AddCompeticion.48")); //$NON-NLS-1$
				mnArchivo.setMnemonic('1');
				mnArchivo.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
				menuBar.add(mnArchivo);
				{
					mntmGuardar = new JMenuItem(Messages.getString("AddCompeticion.49")); //$NON-NLS-1$
					mntmGuardar.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmGuardar.addActionListener(new GuardarActionListener());
					mntmGuardar.setIcon(new ImageIcon(AddCompeticion.class.getResource("/recursos/Guardar-32.png"))); //$NON-NLS-1$
					mnArchivo.add(mntmGuardar);
				}
				{
					mntmCancelar = new JMenuItem(Messages.getString("AddCompeticion.50")); //$NON-NLS-1$
					mntmCancelar.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmCancelar.addActionListener(new CancelarActionListener());
					mntmCancelar.setIcon(new ImageIcon(AddCompeticion.class
							.getResource("/recursos/delete_64.png"))); //$NON-NLS-1$
					mnArchivo.add(mntmCancelar);
				}
				{
					separator_1 = new JSeparator();
					mnArchivo.add(separator_1);
				}
				{
					mntmCambiarIdioma = new JMenu(Messages.getString("AddCompeticion.51")); //$NON-NLS-1$
					mntmCambiarIdioma.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmCambiarIdioma.setIcon(new ImageIcon(Menu.class
							.getResource("/recursos/select_language_32.png"))); //$NON-NLS-1$
					mnArchivo.add(mntmCambiarIdioma);
					{
						mntmEspaol = new JRadioButtonMenuItem("Español"); //$NON-NLS-1$
						mntmEspaol.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
						mntmEspaol.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent e) {
								Util.internacionalizarMensajes("castellano");
								Messages.setIdioma("castellano"); //$NON-NLS-1$
								EditorGrafico ventana = null;
								
									ventana = new EditorGrafico(lblMapa,btnCargarMapap);
								
								ventana.VentanaEditorGrafico.setVisible(true);
								VentanaEditorGrafico.setVisible(false);
								ventana.mntmEspaol.setSelected(true);
								ventana.mntmIngls.setSelected(false);
							}

						});
						buttonGroup.add(mntmEspaol);
						mntmEspaol.setIcon(new ImageIcon(Menu.class
								.getResource("/recursos/banderaEsp.gif"))); //$NON-NLS-1$
						mntmCambiarIdioma.add(mntmEspaol);
					}
					{
						mntmIngls = new JRadioButtonMenuItem(Messages.getString("AddParticipante.105")); //$NON-NLS-1$
						mntmIngls.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
						mntmIngls.addActionListener(new ActionListener() {
							public void actionPerformed(ActionEvent e) {
								Util.internacionalizarMensajes("Inglés");
								Messages.setIdioma("inglés"); //$NON-NLS-1$
								EditorGrafico ventana = null;
								
								ventana = new EditorGrafico(lblMapa,btnCargarMapap);
							
								ventana.VentanaEditorGrafico.setVisible(true);
								VentanaEditorGrafico.setVisible(false);
								ventana.mntmEspaol.setSelected(false);
								ventana.mntmIngls.setSelected(true);
							}
						});

						buttonGroup.add(mntmIngls);
						mntmEspaol.setSelected(true);
						mntmIngls.setIcon(new ImageIcon(Menu.class
								.getResource("/recursos/banderaIng.gif"))); //$NON-NLS-1$
						mntmCambiarIdioma.add(mntmIngls);
					}
				}
				{
					separator = new JSeparator();
					mnArchivo.add(separator);
				}
				{
					mntmSalir = new JMenuItem(Messages.getString("AddCompeticion.59")); //$NON-NLS-1$
					mntmSalir.setMnemonic('E');
					mntmSalir.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmSalir.addActionListener(new ActionListener() {
						public void actionPerformed(ActionEvent e) {
							if (JOptionPane
									.showConfirmDialog(
											VentanaEditorGrafico,
											Messages.getString("AddCompeticion.60"), //$NON-NLS-1$
											Messages.getString("AddCompeticion.61"), //$NON-NLS-1$
											JOptionPane.OK_CANCEL_OPTION) == JOptionPane.YES_OPTION) {
								System.exit(0);
							}
						}
					});
					mntmSalir.setIcon(new ImageIcon(Menu.class
							.getResource("/recursos/login_out_32.png"))); //$NON-NLS-1$
					mnArchivo.add(mntmSalir);
				}
			}
			{
				mnGestin = new JMenu(Messages.getString("AddCompeticion.1")); //$NON-NLS-1$
				mnGestin.setMnemonic('2');
				mnGestin.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
				menuBar.add(mnGestin);
				{
					mntmCargarMapa = new JMenuItem(Messages.getString("EditorGrafico.mntmCargarMapa.text")); //$NON-NLS-1$
					mntmCargarMapa.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmCargarMapa.addActionListener(new BtnCargarMapaActionListener());
					mntmCargarMapa.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Mapa32.png"))); //$NON-NLS-1$
					mnGestin.add(mntmCargarMapa);
				}
				{
					mntmBorrarTodo = new JMenuItem(Messages.getString("EditorGrafico.mntmBorrarTodo.text")); //$NON-NLS-1$
					mntmBorrarTodo.setEnabled(false);
					mntmBorrarTodo.addActionListener(new BtnBorrarTodoActionListener());
					mntmBorrarTodo.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmBorrarTodo.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/eliminar.png"))); //$NON-NLS-1$
					mnGestin.add(mntmBorrarTodo);
				}
				{
					separator_2 = new JSeparator();
					mnGestin.add(separator_2);
				}
				{
					mntmSalida = new JMenuItem(Messages.getString("EditorGrafico.mntmInsertarSalida.text")); //$NON-NLS-1$
					mntmSalida.setEnabled(false);
					mntmSalida.addActionListener(new BtnSalidaActionListener());
					mntmSalida.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmSalida.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/PistolaSalida32.png"))); //$NON-NLS-1$
					mnGestin.add(mntmSalida);
				}
				{
					mntmMeta = new JMenuItem(Messages.getString("EditorGrafico.mntmInsertarLlegada.text")); //$NON-NLS-1$
					mntmMeta.setEnabled(false);
					mntmMeta.addActionListener(new BtnMetaActionListener());
					mntmMeta.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmMeta.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Meta32.png"))); //$NON-NLS-1$
					mnGestin.add(mntmMeta);
				}
				{
					mntmDorsales = new JMenuItem(Messages.getString("EditorGrafico.mntmInsertarPuntoRecogida.text")); //$NON-NLS-1$
					mntmDorsales.setEnabled(false);
					mntmDorsales.addActionListener(new BtnDorsalesActionListener());
					mntmDorsales.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmDorsales.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Dorsales32.png"))); //$NON-NLS-1$
					mnGestin.add(mntmDorsales);
				}
				{
					separator_3 = new JSeparator();
					mnGestin.add(separator_3);
				}
				{
					mntmSOS = new JMenuItem(Messages.getString("EditorGrafico.mntmInsertarPuestoSos.text")); //$NON-NLS-1$
					mntmSOS.setEnabled(false);
					mntmSOS.addActionListener(new BtnSOSActionListener());
					mntmSOS.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmSOS.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/SOS32.png"))); //$NON-NLS-1$
					mnGestin.add(mntmSOS);
				}
				{
					mntmBebida = new JMenuItem(Messages.getString("EditorGrafico.mntmInsertarPuestoBebida.text")); //$NON-NLS-1$
					mntmBebida.setEnabled(false);
					mntmBebida.addActionListener(new BtnBebidaActionListener());
					mntmBebida.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmBebida.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Agua32.png"))); //$NON-NLS-1$
					mnGestin.add(mntmBebida);
				}
				{
					mntmComida = new JMenuItem(Messages.getString("EditorGrafico.mntmInsertarPuestoComida.text")); //$NON-NLS-1$
					mntmComida.setEnabled(false);
					mntmComida.addActionListener(new BtnComidaActionListener());
					mntmComida.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmComida.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Comida32.png"))); //$NON-NLS-1$
					mnGestin.add(mntmComida);
				}
				{
					mntmComentario = new JMenuItem(Messages.getString("EditorGrafico.mntmInsertarComentario.text")); //$NON-NLS-1$
					mntmComentario.setEnabled(false);
					mntmComentario.addActionListener(new BtnAnotacionActionListener());
					mntmComentario.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmComentario.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Comentario32.png"))); //$NON-NLS-1$
					mnGestin.add(mntmComentario);
				}
				{
					separator_4 = new JSeparator();
					mnGestin.add(separator_4);
				}
				{
					mntmLapiz = new JMenuItem(Messages.getString("EditorGrafico.mntmDibujarRuta.text")); //$NON-NLS-1$
					mntmLapiz.setEnabled(false);
					mntmLapiz.addActionListener(new BtnLapizActionListener());
					mntmLapiz.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmLapiz.setIcon(new ImageIcon(EditorGrafico.class.getResource("/recursos/Lapiz32.png"))); //$NON-NLS-1$
					mnGestin.add(mntmLapiz);
				}
			}
			{
				mnAyuda = new JMenu(Messages.getString("AddCompeticion.66")); //$NON-NLS-1$
				mnAyuda.setMnemonic('3');
				mnAyuda.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
				menuBar.add(mnAyuda);
				{
					mntmAyuda = new JMenuItem(Messages.getString("AddCompeticion.67")); //$NON-NLS-1$
					mntmAyuda.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmAyuda.addActionListener(new AyudaActionListener());
					mntmAyuda.setIcon(new ImageIcon(Menu.class
							.getResource("/recursos/Ayuda.png"))); //$NON-NLS-1$
					mnAyuda.add(mntmAyuda);
				}
				{
					mntmAcercaDe = new JMenuItem(Messages.getString("AddCompeticion.69")); //$NON-NLS-1$
					mntmAcercaDe.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
					mntmAcercaDe.addActionListener(new ActionListener() {
						@SuppressWarnings("deprecation")
						public void actionPerformed(ActionEvent e) {
							AcercaDe app = null;
							app = new AcercaDe(VentanaEditorGrafico);
							app.VentanaAcercaDe.setVisible(true);
							
							
						}
					});
					mntmAcercaDe.setIcon(new ImageIcon(Menu.class
							.getResource("/recursos/LOGO-pqeq.png")));  //$NON-NLS-1$
					mnAyuda.add(mntmAcercaDe);
				}
			}

		}
		
	}

	private class BtnCargarMapaActionListener implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			JFileChooser fcAbrir = new JFileChooser();
			int valorDevuelto = fcAbrir.showOpenDialog(VentanaEditorGrafico);
			if (valorDevuelto == JFileChooser.APPROVE_OPTION) {
				miAreaDibujo.cleanObjetoGrafico();
				File file = fcAbrir.getSelectedFile();
				imagen = new ImageIcon(file.getAbsolutePath());
				miAreaDibujo.setIcon(imagen);
				btnBorrarTodo.setEnabled(true);
				btnSalida.setEnabled(true);
				btnMeta.setEnabled(true);
				btnSOS.setEnabled(true);
				btnBebida.setEnabled(true);
				btnComida.setEnabled(true);
				btnDorsales.setEnabled(true);
				btnComentario.setEnabled(true);
				btnLapiz.setEnabled(true);
				mntmBorrarTodo.setEnabled(true);
				mntmSalida.setEnabled(true);
				mntmMeta.setEnabled(true);
				mntmSOS.setEnabled(true);
				mntmBebida.setEnabled(true);
				mntmComida.setEnabled(true);
				mntmDorsales.setEnabled(true);
				mntmComentario.setEnabled(true);
				mntmLapiz.setEnabled(true);
				
			}
		}
	}

	private class BtnAnotacionActionListener implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			modo = TEXTO;
			VentanaEditorGrafico.setCursor(cursorTexto);
		}
	}
	private class BtnMetaActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			modo = META;
			VentanaEditorGrafico.setCursor(cursorMeta);
		}
	}
	private class BtnSalidaActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			modo = SALIDA;
			VentanaEditorGrafico.setCursor(cursorSalida);
		}
	}
	private class BtnSOSActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			modo = SOS;
			VentanaEditorGrafico.setCursor(cursorSOS);
		}
	}
	private class BtnBebidaActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			modo = BEBIDA;
			VentanaEditorGrafico.setCursor(cursorBebida);
		}
	}
	private class BtnComidaActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			modo = COMIDA;
			VentanaEditorGrafico.setCursor(cursorComida);
		}
	}
	private class BtnDorsalesActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			modo = DORSALES;
			VentanaEditorGrafico.setCursor(cursorDorsales);
		}
	}
	private class BtnLapizActionListener implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			modo = LAPIZ;
			VentanaEditorGrafico.setCursor(cursorLapiz);
		}
	}
	

	private class MiAreaDibujoMouseListener extends MouseAdapter {
		@SuppressWarnings("deprecation")
		@Override
		public void mousePressed(MouseEvent e) {
			x = e.getX();
			y = e.getY();
			toolkit = Toolkit.getDefaultToolkit();
			if (imagen != null) {
				switch (modo) {
				case META:
					miAreaDibujo.addObjetoGrafico(new ImagenGrafico(x, y,
							imagMeta));
					miAreaDibujo.repaint();
					btnMeta.setEnabled(false);
					mntmMeta.setEnabled(false);
					modo=-1;
					VentanaEditorGrafico.setCursor(Cursor.DEFAULT_CURSOR);
					break;
				case SALIDA:
					miAreaDibujo.addObjetoGrafico(new ImagenGrafico(x, y,
							imagSalida));
					miAreaDibujo.repaint();
					btnSalida.setEnabled(false);
					mntmSalida.setEnabled(false);
					modo=-1;
					VentanaEditorGrafico.setCursor(Cursor.DEFAULT_CURSOR);
					break;
				case SOS:
					miAreaDibujo.addObjetoGrafico(new ImagenGrafico(x, y,
							imagSOS));
					miAreaDibujo.repaint();
					break;
				case BEBIDA:
					miAreaDibujo.addObjetoGrafico(new ImagenGrafico(x, y,
							imagBebida));
					miAreaDibujo.repaint();
					break;
				case COMIDA:
					miAreaDibujo.addObjetoGrafico(new ImagenGrafico(x, y,
							imagComida));
					miAreaDibujo.repaint();
					break;
				case DORSALES:
					miAreaDibujo.addObjetoGrafico(new ImagenGrafico(x, y,
							imagDorsales));
					miAreaDibujo.repaint();
					btnDorsales.setEnabled(false);
					mntmDorsales.setEnabled(false);
					VentanaEditorGrafico.setCursor(Cursor.DEFAULT_CURSOR);
					modo=-1;
					break;
				case LAPIZ:
					miAreaDibujo.addObjetoGrafico(new RutaGrafico(x, y, Color.RED));
					miAreaDibujo.repaint();
					break;
				case TEXTO:
					txtTexto.setBounds(x, y, 200, 30);
					txtTexto.setVisible(true);
					txtTexto.requestFocus();
					txtTexto.addActionListener(new ActionListener() {
						public void actionPerformed(ActionEvent arg) {
							if (!txtTexto.getText().equals("")) //$NON-NLS-1$
								miAreaDibujo.addObjetoGrafico(new TextoGrafico(
										x, y + 15, txtTexto.getText(),
										Color.BLUE));
							txtTexto.setText(""); //$NON-NLS-1$
							txtTexto.setVisible(false);
							miAreaDibujo.repaint();
						}
					});
					miAreaDibujo.add(txtTexto);
				}
			}
		}
	}

	
	private class BtnBorrarTodoActionListener implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			miAreaDibujo.cleanObjetoGrafico();
			miAreaDibujo.repaint();
			btnSalida.setEnabled(true);
			btnMeta.setEnabled(true);
			btnDorsales.setEnabled(true);
			mntmSalida.setEnabled(true);
			mntmMeta.setEnabled(true);
			mntmDorsales.setEnabled(true);
		}
	}
	private class GuardarActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			JOptionPane.showMessageDialog(VentanaEditorGrafico,Messages.getString("EditorGrafico.9"),Messages.getString("EditorGrafico.10"), JOptionPane.INFORMATION_MESSAGE);  //$NON-NLS-1$ //$NON-NLS-2$
		    lblMapa.setIcon(new ImageIcon(AddCompeticion.class
					.getResource("/recursos/MapaCargado.png")));
		    btnCargarMapap.setVisible(false);
			VentanaEditorGrafico.setVisible(false);
		}
	}
	private class CancelarActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			if (JOptionPane.showOptionDialog(VentanaEditorGrafico,Messages.getString("EditorGrafico.14"),Messages.getString("EditorGrafico.11"), JOptionPane.YES_NO_OPTION, //$NON-NLS-1$ //$NON-NLS-2$
					JOptionPane.QUESTION_MESSAGE, null, null, null) == 0) {
				VentanaEditorGrafico.setVisible(false);
			}
		}
	}
	private class AyudaActionListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			JOptionPane.showMessageDialog(VentanaEditorGrafico,Messages.getString("EditorGrafico.12"),Messages.getString("EditorGrafico.13") ,JOptionPane.INFORMATION_MESSAGE); //$NON-NLS-1$ //$NON-NLS-2$
		}
	}
}
